package com.Transport.Up;

import com.sun.istack.internal.NotNull;

/**
 * Time    : 2023/3/17 11:11
 * Author  : 王摇摆
 * FileName: Main.java
 * Software: IntelliJ IDEA 2020.2.2
 * Blog    ：https://blog.csdn.net/weixin_44943389?type=blog
 */

public class Main {
    public static void main1(String[] args) {
//        //纯对象测试
//        Fruit fruit = new Fruit();
//        fruit.show();

        //多态测试
        Fruit f1 = new Apple();
        f1.show();
//        f1.test();//报错：因为向上转型的多态只能使用父类的东西，只能使用父类的功能，不能使用子类特有功能，功能被限定。
    }

    public static void main2(String[] args) {//向下转型实例的实现
        Fruit fruit = new Orange();
        Orange orange = (Orange) fruit;

        orange.show();
        orange.test();


    }

    public static void main(String[] args) {
        //多态的实现
        run(new Fruit());
        run(new Orange());
        run(new Apple());
    }

    public static void run(@NotNull Fruit fruit) {
        fruit.show();
    }

    public static void run(Orange orange) {
        orange.show();
        orange.test();
    }

    public static void run(Apple apple) {
        apple.show();
        apple.test();
    }
}
